package com.lingxu.base.system.manage.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.lingxu.base.system.manage.entity.SysRole;
import com.lingxu.base.system.manage.entity.SysUser;
import com.lingxu.base.system.manage.entity.SysUserRoleQueryVo;
import com.lingxu.base.system.manage.model.SysRoleTree;

import java.util.List;
import java.util.Set;

/**
 * @Description: 角色信息
 * @Author: LingXu
 * @Date:   2021-01-04
 * @Version: V1.0.1
 */
public interface ISysRoleService extends IService<SysRole> {

    /**
     * 角色信息-列表查询
     * @return 角色信息列表
     */
    List<SysRole> queryList();

    /**
     * 通过用户查询关联角色
     * @param userId
     * @return
     */
    List<SysRole> getUserRoleList(String userId,Integer flag);

    /**
     * 角色信息-角色名集合查询
     * @param userName 用户名
     * @return 角色名集合,角色code集合，角色列表
     */
    Set<String> getCodeSetByUserName(String userName);

    List<SysRole> getIdNameCodeByUserName(String userName);

    List<SysRoleTree> getTreeListByUserIdInManage(String userId, String rootTableType, String orgId);

    IPage<SysUser> getSysUserByRole(Page<SysUser> page, SysUserRoleQueryVo vo);
}
